home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / tex / inputs / mma.pro.1.2 < prev    next >
Text File  |  1991-06-09  |  4KB  |  451 lines

  1. /Mfontsize    7 def
  2. /Mdeffont    { Plain } def
  3. /Mlmarg        0 72 mul def
  4. /Mrmarg        0 72 mul def
  5. /Mbmarg        0 72 mul def
  6. /Mtmarg        0 72 mul def
  7. /Mtransform    {  } bind def
  8. %%
  9. /Mpstart {
  10. MathPictureStart
  11. } bind def
  12. /Mpend {
  13. MathPictureEnd
  14. } bind def
  15. /Mscale {
  16. 0 1 0 1
  17. 5 -1 roll
  18. MathScale
  19. } bind def
  20. /Plain
  21. /Courier findfont
  22. def
  23. /Bold
  24. /Courier-Bold findfont
  25. def
  26. /Italic
  27. /Courier-Oblique findfont
  28. def
  29. /MathPictureStart {
  30. gsave
  31. Mtransform
  32. Mlmarg
  33. Mbmarg
  34. translate
  35. /Mtmatrix
  36. matrix currentmatrix
  37. def
  38. Mdeffont
  39. Mfontsize scalefont
  40. setfont
  41. } bind def
  42. /MathPictureEnd {
  43. grestore
  44. %%showpage
  45. } bind def
  46. /Mdot {
  47. moveto
  48. 0 0 rlineto
  49. stroke
  50. } bind def
  51. /Mtetra {
  52. moveto
  53. lineto
  54. lineto
  55. lineto
  56. fill
  57. } bind def
  58. /Metetra {
  59. moveto
  60. lineto
  61. lineto
  62. lineto
  63. closepath
  64. gsave
  65. fill
  66. grestore
  67. 0 setgray
  68. stroke
  69. } bind def
  70. /Mistroke {
  71. flattenpath
  72. 0 0 0
  73. {
  74. 4 2 roll
  75. pop pop
  76. }
  77. {
  78. 4 -1 roll
  79. 2 index
  80. sub dup mul
  81. 4 -1 roll
  82. 2 index
  83. sub dup mul
  84. add sqrt
  85. 4 -1 roll
  86. add
  87. 3 1 roll
  88. }
  89. {
  90. stop
  91. }
  92. {
  93. stop
  94. }
  95. pathforall
  96. pop pop
  97. currentpoint
  98. stroke
  99. moveto
  100. currentdash
  101. 3 -1 roll
  102. add
  103. setdash
  104. } bind def
  105. /Mfstroke {
  106. stroke
  107. currentdash
  108. pop 0
  109. setdash
  110. } bind def
  111. /Msboxa {
  112. newpath
  113. 5 -1 roll
  114. Mvboxa
  115. pop
  116. 6 -1 roll
  117. 5 -1 roll
  118. 4 -1 roll
  119. Msboxa1
  120. 5 -3 roll
  121. Msboxa1
  122. [
  123. 7 -2 roll
  124. 2 copy
  125. [
  126. 3 1 roll
  127. 10 -1 roll
  128. 9 -1 roll
  129. ]
  130. 6 1 roll
  131. 5 -2 roll
  132. ]
  133. } bind def
  134. /Msboxa1 {
  135. sub
  136. 2 div
  137. dup
  138. 2 index
  139. 1 add
  140. mul
  141. 3 -1 roll
  142. -1 add
  143. 3 -1 roll
  144. mul
  145. } bind def
  146. /Mvboxa {
  147. gsave
  148. newpath
  149. [ true
  150. 3 -1 roll
  151. {
  152. Mbbox
  153. 5 -1 roll
  154. {
  155. 0
  156. 5 1 roll
  157. }
  158. {
  159. 7 -1 roll
  160. exch sub
  161. (m) stringwidth pop
  162. .3 mul
  163. sub
  164. 7 1 roll
  165. 6 -1 roll
  166. 4 -1 roll
  167. Mmin
  168. 3 -1 roll
  169. 5 index
  170. add
  171. 5 -1 roll
  172. 4 -1 roll
  173. Mmax
  174. 4 -1 roll
  175. }
  176. ifelse
  177. false
  178. }
  179. forall
  180. { stop } if
  181. counttomark
  182. 1 add
  183. 4 roll
  184. ]
  185. grestore
  186. } bind def
  187. /Mbbox {
  188. 0 0 moveto
  189. false charpath
  190. flattenpath
  191. pathbbox
  192. newpath
  193. } bind def
  194. /Mmin {
  195. 2 copy
  196. gt
  197. { exch } if
  198. pop
  199. } bind def
  200. /Mmax {
  201. 2 copy
  202. lt
  203. { exch } if
  204. pop
  205. } bind def
  206. /Mshowa {
  207. 4 -2 roll
  208. moveto
  209. 2 index
  210. Mtmatrix setmatrix
  211. Mvboxa
  212. 7 1 roll
  213. 6 -1 roll
  214. 5 -1 roll
  215. 4 -1 roll
  216. Mshowa1
  217. 4 1 roll
  218. Mshowa1
  219. rmoveto
  220. currentpoint
  221. 0 1
  222. 4 index length
  223. -1 add
  224. {
  225. 2 index
  226. 4 index
  227. 2 index
  228. get
  229. 3 index
  230. add
  231. moveto
  232. 4 index
  233. exch get
  234. show
  235. } for
  236. pop pop pop pop
  237. Mgmatrix setmatrix
  238. } bind def
  239. /Mshowa1 {
  240. 2 copy
  241. add
  242. 4 1 roll
  243. sub
  244. mul
  245. sub
  246. -2 div
  247. } bind def
  248. /MathScale {
  249. Mwidth
  250. Mlmarg Mrmarg add
  251. sub
  252. Mheight
  253. Mbmarg Mtmarg add
  254. sub
  255. 0 0 moveto
  256. 1 index 0
  257. lineto
  258. 2 copy
  259. lineto
  260. 0 1 index
  261. lineto
  262. clip newpath
  263. Mlp
  264. translate
  265. scale
  266. pop pop pop pop
  267. /Mgmatrix
  268. matrix currentmatrix
  269. def
  270. } bind def
  271. /Mlp {
  272. 3 copy
  273. Mlpfirst
  274. {
  275. Mnodistort
  276. {
  277. Mmin
  278. dup
  279. } if
  280. 4 index
  281. 2 index
  282. 2 index
  283. Mlprun
  284. 11 index
  285. 11 -1 roll
  286. 10 -4 roll
  287. Mlp1
  288. 8 index
  289. 9 -5 roll
  290. Mlp1
  291. 4 -1 roll
  292. and
  293. { exit } if
  294. 3 -1 roll
  295. pop pop
  296. } loop
  297. exch
  298. 3 1 roll
  299. 7 -3 roll
  300. pop pop pop
  301. } bind def
  302. /Mlpfirst {
  303. 3 -1 roll
  304. dup length
  305. 2 copy
  306. -2 add
  307. get
  308. aload
  309. pop pop pop
  310. 4 -2 roll
  311. -1 add
  312. get
  313. aload
  314. pop pop pop
  315. 6 -1 roll
  316. 3 -1 roll
  317. 5 -1 roll
  318. sub
  319. div
  320. 4 1 roll
  321. exch sub
  322. div
  323. } bind def
  324. /Mlprun {
  325. 2 copy
  326. 4 index
  327. 0 get
  328. dup
  329. 4 1 roll
  330. Mlprun1
  331. 3 copy
  332. 8 -2 roll
  333. 9 -1 roll
  334. {
  335. 3 copy
  336. Mlprun1
  337. 3 copy
  338. 11 -3 roll
  339. /gt Mlpminmax
  340. 8 3 roll
  341. 11 -3 roll
  342. /lt Mlpminmax
  343. 8 3 roll
  344. } forall
  345. pop pop pop pop
  346. 3 1 roll
  347. pop pop
  348. aload pop
  349. 5 -1 roll
  350. aload pop
  351. exch
  352. 6 -1 roll
  353. Mlprun2
  354. 8 2 roll
  355. 4 -1 roll
  356. Mlprun2
  357. 6 2 roll
  358. 3 -1 roll
  359. Mlprun2
  360. 4 2 roll
  361. exch
  362. Mlprun2
  363. 6 2 roll
  364. } bind def
  365. /Mlprun1 {
  366. aload pop
  367. exch
  368. 6 -1 roll
  369. 5 -1 roll
  370. mul add
  371. 4 -2 roll
  372. mul
  373. 3 -1 roll
  374. add
  375. } bind def
  376. /Mlprun2 {
  377. 2 copy
  378. add 2 div
  379. 3 1 roll
  380. exch sub
  381. } bind def
  382. /Mlpminmax {
  383. cvx
  384. 2 index
  385. 6 index
  386. 2 index
  387. exec
  388. {
  389. 7 -3 roll
  390. 4 -1 roll
  391. } if
  392. 1 index
  393. 5 index
  394. 3 -1 roll
  395. exec
  396. {
  397. 4 1 roll
  398. pop
  399. 5 -1 roll
  400. aload
  401. pop pop
  402. 4 -1 roll
  403. aload pop
  404. [
  405. 8 -2 roll
  406. pop
  407. 5 -2 roll
  408. pop
  409. 6 -2 roll
  410. pop
  411. 5 -1 roll
  412. ]
  413. 4 1 roll
  414. pop
  415. }
  416. {
  417. pop pop pop
  418. } ifelse
  419. } bind def
  420. /Mlp1 {
  421. 5 index
  422. 3 index    sub
  423. 5 index
  424. 2 index mul
  425. 1 index
  426. le
  427. 1 index
  428. 0 le
  429. or
  430. dup
  431. not
  432. {
  433. 1 index
  434. 3 index    div
  435. .99999 mul
  436. 8 -1 roll
  437. pop
  438. 7 1 roll
  439. }
  440. if
  441. 8 -1 roll
  442. 2 div
  443. 7 -2 roll
  444. pop sub
  445. 5 index
  446. 6 -3 roll
  447. pop pop
  448. mul sub
  449. exch
  450. } bind def
  451.